<?php namespace Common\Model;
use Hdphp\Model\Model;
//分类管理模型
class Cate extends Model{
	//指定表名 固定写法
	protected $table = "category";
	//自动验证
	protected $validate = array(
		//array(字段名,验证方法,错误信息,验证条件,验证时间)
		array('cname','required','分类名称不为空',3,3),
		array('cname','maxlen:20','分类名称不超过20个字符',3,3),
		array('sort','num:0,65535','排序为0-65535范围',3,3),
		array('type_tid','required','类型名称不为空',3,3),
	);
	//添加方法
	public function store(){
		//验证通过
		if($this->create()){
			return $this->add();
		}else{
			return false;
		}
	}
	//获得除了自己和自己的子集，被分类控制器编辑方法所调用
	public function getNoMy($cid){
		//1.获得当前分类的子集的cid
		$cids = $this->getSon($this->get(),$cid);
		//2.把自己的cid压入
		$cids[] = $cid;
		//3.获得除了自己和自己的子集的数据 implode将数组转为字符串
		$data = $this->where("cid NOT IN(".implode(',',$cids).")")->get();
		//4.查看运行的sql,调试的时候使用 $log = $this->getQueryLog();  //p($log);
		$data = Data::tree($data,'cname');
		return $data;
	}
	//获得所有的子集cid 固定写法 其他也可以按照这样写
	public function getSon($data,$cid){
		$temp = array();
	foreach($data as $v){
			if($v['pid'] == $cid){
				//把子集的cid压入到temp临时数组
				$temp[] = $v['cid'];
				$temp = array_merge($temp,$this->getSon($data,$v['cid']));
			}
		}
		return $temp;
	}
	//编辑方法
	public function edit(){
		//验证通过
		if($this->create()){
			$this->save();
			return true;
		}
		return false;
	}
	
} 
	
?>